'''
4、读入给定的文本文件“hamlet.txt”，编写两个函数分别实现:
1) 统计所有字母的出现频度,依据频度从高到低，显示前5个字母及其频度，
同时把结果写入文件“hamlet_字母频度.txt”。
	函数名：Read01
2) 统计所有单词的出现频度,依据频度从高到低，显示前10个单词及其频度，
同时把结果写入文件“hamlet_单词频度.txt”。
	函数名：Read02
	(文件名：py0237.py)
	备注：
1、大小写为同一字母。
2、文件中还含个别汉字，不能统计汉字。
3、空字符中不能作为单词。
4、在课件中搜索【Python split()方法、re.split】。
'''
import re
"""判断一个unicode是否是英文字母"""


def is_alphabet(uchar):
    if (uchar >= u'\u0041' and uchar <= u'\u005a') or (uchar >= u'\u0061'
                                                       and uchar <= u'\u007a'):
        return True
    else:
        return False



f = open("hamlet.txt", "r")
str_grades = " ".join(f.readlines())
str_grades = str_grades.lower()

grades = re.split(' |，|-|\|\r|\n', str_grades)
print(grades)
f.close()

str_ = ""

for i in range(len(grades)):
    for j in grades[i]:
        if is_alphabet(j):  # or j.isspace():
            str_ += j
    # str_ += ' '
    print("转换后:")
    print(str_)

hamlet_letter = {chr(i): (0) for i in range(97, 123)}
for i in str_:
    hamlet_letter[i] = hamlet_letter[i] + 1
hamlet_letter_sort = sorted(hamlet_letter.items(), key=lambda x: x[1], reverse=True)

print(hamlet_letter_sort)

#  全部分割成单词即可

hamlet_word = {}
